This invention relates to a method of processing data that has been stored in a storage device, a data processing apparatus used upon being connected to a storage device, and an image printing apparatus in which such a data processing apparatus is built-in.
Serial printers are in wide use as printers that can be constructed in small size and at low cost. Among the serial printers, ink-jet printers, in particular, have undergone remarkable development in recent years as printers capable of printing quietly and at high speed, and the capabilities of these printers have been enhanced. For example, in regard to printing speed, higher speed has been achieved by raising the scanning speed of the carriage that carries the printhead. Meanwhile, printing quality has been improved greatly by techniques such as raising the definition of images by improving image resolution.
However, there is increasing demand to achieve even higher printing speed and printing quality at the same time, and this has led to certain problems that need to be solved.
For example, a well-known technique for improving printing quality through higher resolution is to drive the nozzles of the printhead in time-division fashion. Specifically, the load on the power supply is alleviated by reducing the peak value of current needed to drive the printhead. In addition, by driving adjacent nozzles at different timings, vibration of the ink, within the printhead that accompanies jetting of the ink drops, is reduced, thereby improving the ink jetting characteristic of the printhead. When printing is performed utilizing this technique, there are instances where attainment of higher printing speed is hampered because data processing takes too much time.
This problem will be described taking as an example an ink-jet printer which prints at 1440 dpi (in the horizontal direction). The printer has a ink-jet head on which 128 ink-jet nozzles are arrayed vertically at intervals of 1/360 of an inch. Ink drops are jetted from the nozzles toward print paper while the ink-jet head is scanned horizontally relative to the print paper, thereby performing printing on the print paper.
FIG. 2 is a timing chart representing the driving sequence of the printhead. Since time-division drive is performed based upon division by 4, the 128 nozzles of the printhead are driven at four timings. Adjacent nozzles are driven at different timings, and nozzles driven simultaneously are those of every other four dots.
Since the serial printer drives the print head while causing it to travel along the print paper, any deviation in drive timing results in a deviation in the position of dots on the print paper. With the driving method shown in FIG. 2, the rows of dots are formed in the shape of a sawtooth because of the time difference resulting from time division. Therefore, in a case where a printhead is driven by time division, measurements need to be taken so that print deviation will not be caused by a time difference in drive timing.
An example of a method of preventing print deviation involves arraying the nozzles obliquely, relative to the direction of transport, at an angle that corresponds to the printing deviation.
FIG. 3A illustrates the 1st through 20th nozzles arrayed at an angle on the upper end of the printhead. Since the nozzles are thus arrayed, the printhead itself is mounted on the carriage at an incline of 3.58• with respect to a vertical line on the print paper. In other words, the printhead has an incline of 1/360 of an inch in the horizontal direction per 16 nozzles in the vertical direction. The carriage is scanned horizontally (to the right in FIG. 3A) relative to the print paper.
FIG. 3B is a diagram showing a dot array formed on print paper by the driving sequence of FIG. 2 under these conditions. Since a deviation in drive timing resulting from time-division drive is canceled out by the inclination of the printhead, the dots that correspond to the 1st to 4th nozzles are arranged vertically. Further, the dots that correspond to the 5th to 8th nozzles are arranged vertically and spaced 1/1440 of an inch to the right of the above-mentioned dots. Because this ink-jet printer prints at 1440 dpi, the dots spaced to the right by 1/1440 of an inch form a row of dots adjacent on the right side. The same holds true for the other nozzles, in which an adjacent row of dots spaced to the right by 1/1440 of an inch is formed every four nozzles. By driving the printhead one full cycle, therefore, dot rows in the form of a staircase are formed over 32 rows on the print paper.
FIG. 4 is a diagram showing a data array in a print buffer. Since the print buffer stores print data immediately before it is output to the printhead, the buffer is an area provided in a RAM possessed by the printer. The area is capable of storing print data in the vertical direction equivalent to the size (128 dots) of the printhead and in the horizontal direction equivalent to the width of the print paper. Each rectangle bounded by the solid lines in FIG. 4 indicate one byte of print data. The rows of dots printed by driving the printhead one time have the shape of a staircase, as shown in FIG. 3B. Therefore, in a case where the data is transferred to the printhead from the print buffer, it is necessary to read the data out of the print buffer in staircase fashion, as indicated by the shaded portions in FIG. 4.
The problem that arises here is than when data is read from and written to a RAM, inclusive of a print buffer, one byte, i.e., eight bits, is the smallest unit in which reading and writing can take place. Accordingly, in order to read out the four bits from one of the shaded portions in FIG. 4, e.g., data K1, one byte of data that includes K1 must be read out. Consequently, in order to read out 128 bits of data from K1 to K32, it becomes necessary to read out data of twice the number of bits, namely 256 bits of data. Because of the processing for reading out of the excess data, an increase in printing speed is prevented.